home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / digsby / web.pyo (.txt) < prev   
Python Compiled Bytecode  |  2008-10-13  |  3KB  |  67 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. from util import threaded, UrlQuery
  5. from urllib import FancyURLopener
  6. from hashlib import sha256
  7. from logging import getLogger
  8. log = getLogger('digsby.web')
  9. ACCOUNT_URL = 'https://accounts.digsby.com/login.php'
  10.  
  11. class DigsbyHttpError(Exception):
  12.     pass
  13.  
  14.  
  15. class DigsbyHttp(object):
  16.     
  17.     def __init__(self, username, password, url = ACCOUNT_URL):
  18.         self.username = username
  19.         self.password = sha256(password).hexdigest()
  20.         self.url = url
  21.  
  22.     
  23.     def __repr__(self):
  24.         return '<%s to %s>' % (self.__class__.__name__, self.url)
  25.  
  26.     
  27.     def _urlopen(self, **params):
  28.         resp = digsby_webget_no_thread(self.url, user = self.username, key = self.password, **params)
  29.         if resp == 'ERR':
  30.             raise DigsbyHttpError('server indicated error: %r' % resp)
  31.         
  32.         return resp
  33.  
  34.     GET = _urlopen
  35.  
  36.  
  37. def digsby_acct_http(username, password, **params):
  38.     return digsby_webget_no_thread(ACCOUNT_URL, user = username, key = sha256(password).hexdigest(), **params)
  39.  
  40.  
  41. def digsby_webget(url, **params):
  42.     return digsby_webget_no_thread(url, **params)
  43.  
  44. digsby_webget = threaded(digsby_webget)
  45.  
  46. def digsby_webget_no_thread(url, **params):
  47.     http_opener = FancyURLopener()
  48.     http_opener.addheaders = [
  49.         ('Cache-Control', 'no-cache'),
  50.         ('User-Agent', 'Digsby')]
  51.     log.info('GETting url %s', url)
  52.     url = UrlQuery(url, **params)
  53.     log.info_s('full query is %s', url)
  54.     response = http_opener.open(url)
  55.     res = response.read()
  56.     response.close()
  57.     log.info('response: %r', res)
  58.     return res
  59.  
  60.  
  61. class DigsbyFancyURLopener(FancyURLopener):
  62.     
  63.     def prompt_user_passwd(self, host, realm):
  64.         return ('', '')
  65.  
  66.  
  67.